package com.sakura.oj.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sakura.oj.model.dto.problem.ProblemQueryRequest;
import com.sakura.oj.model.entity.Problem;
import com.sakura.oj.model.vo.HotProblemVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Sakura
 * @description 针对表【problem(题目)】的数据库操作Mapper
 * @createDate 2025-03-16 19:15:27
 * @Entity com.sakura.oj.model.entity.Problem
 */
public interface ProblemMapper extends BaseMapper<Problem> {


    /**
     * 综合条件分页查询题目
     *
     * @param page                分页参数
     * @param problemQueryRequest 查询条件
     * @return 分页题目列表
     */
    Page<Problem> selectPageWithAll(Page<Problem> page, @Param("query") ProblemQueryRequest problemQueryRequest);

    /**
     * 获取最热门的题目
     *
     * @param hotProblemIds 热门题目id
     * @return 最热门的题目
     */
    List<HotProblemVo> selectHotProblems(List<Long> hotProblemIds);
}




